--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / backend / database / notification_sounds.py
Displaying Raw • Download
meshchatx/src/backend/database/notification_sounds.py c0b0ddffd735a0d007c1be9a5e8563ec42fdafc0 (c0b0ddff) Text, 2.99 KB
T8b949e# SPDX-License-Identifier: 0BSD
Tff7b72from T7ee787datetime Tff7b72import Te6edf3UTCTb4b4b4, Te6edf3datetime
Tff7b72from T7ee787.T7ee787provider Tff7b72import Te6edf3DatabaseProvider
Tff7b72class T56d364NotificationSoundDAOTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3providerTb4b4b4: Te6edf3DatabaseProviderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprovider Tff7b72= Te6edf3provider
Tff7b72def Td2a8ffget_allTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchallTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM notification_sounds ORDER BY created_at DESCTa5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffget_by_idTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sound_idTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM notification_sounds WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3sound_idTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffget_primaryTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM notification_sounds WHERE is_primary = 1Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffaddTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3filenameTb4b4b4, Te6edf3storage_filenameTb4b4b4, Te6edf3display_nameTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3now Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)
Tff7b72if Te6edf3display_name Tff7b72is Tff7b72NoneTb4b4b4:
Te6edf3display_name Tff7b72= Te6edf3filename
Te6edf3count Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT COUNT(*) as count FROM notification_soundsTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4[Ta5d6ff"Ta5d6ffcountTa5d6ff"Tb4b4b4]
Te6edf3is_primary Tff7b72= T79c0ff1 Tff7b72if Te6edf3count Tff7b72== T79c0ff0 Tff7b72else T79c0ff0
Te6edf3cursor Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffINSERT INTO notification_sounds (filename, display_name, storage_filename, is_primary, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?)Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3filenameTb4b4b4, Te6edf3display_nameTb4b4b4, Te6edf3storage_filenameTb4b4b4, Te6edf3is_primaryTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3nowTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72return Te6edf3cursorTff7b72.Td2a8fflastrowid
Tff7b72def Td2a8ffupdateTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sound_idTb4b4b4, Te6edf3display_nameTff7b72=Tff7b72NoneTb4b4b4, Te6edf3is_primaryTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3now Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)
Tff7b72if Te6edf3is_primary Tff7b72== T79c0ff1Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE notification_sounds SET is_primary = 0, updated_at = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3nowTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3display_name Tff7b72is Tff7b72not Tff7b72None Tff7b72and Te6edf3is_primary Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE notification_sounds SET display_name = ?, is_primary = ?, updated_at = ? WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3display_nameTb4b4b4, Te6edf3is_primaryTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3sound_idTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72elif Te6edf3display_name Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE notification_sounds SET display_name = ?, updated_at = ? WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3display_nameTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3sound_idTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72elif Te6edf3is_primary Tff7b72is Tff7b72not Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffUPDATE notification_sounds SET is_primary = ?, updated_at = ? WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3is_primaryTb4b4b4, Te6edf3nowTb4b4b4, Te6edf3sound_idTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72def Td2a8ffdeleteTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3sound_idTb4b4b4)Tb4b4b4:
Te6edf3sound Tff7b72= Tff7b72selfTff7b72.Td2a8ffget_by_idTb4b4b4(Te6edf3sound_idTb4b4b4)
Tff7b72if Te6edf3sound Tff7b72and Te6edf3soundTb4b4b4[Ta5d6ff"Ta5d6ffis_primaryTa5d6ff"Tb4b4b4] Tff7b72== T79c0ff1Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffDELETE FROM notification_sounds WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3sound_idTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Te6edf3next_sound Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT id FROM notification_sounds LIMIT 1Ta5d6ff"Tb4b4b4,
Tb4b4b4)
Tff7b72if Te6edf3next_soundTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffupdateTb4b4b4(Te6edf3next_soundTb4b4b4[Ta5d6ff"Ta5d6ffidTa5d6ff"Tb4b4b4]Tb4b4b4, Te6edf3is_primaryTff7b72=T79c0ff1Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffDELETE FROM notification_sounds WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3sound_idTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────